Objet : Interface
Symbole:
Mot-clé: INTERFACE
Une interface est un moyen de programmation orientée objet. L'object ITF
décrit un ensemble de prototypes de méthodes et de propriétés. Dans ce contexte, prototype signifie que le méthodes et Propriétés ne contiennent que des déclarations et aucune implémentation.
Cela permet d'utiliser de la même manière différents blocs fonctionnels ayant des propriétés communes. Une FIT l'objet est ajouté à l'application ou au projet en cliquant sur
Pour plus d'informations, consultez : Implémenter une interface
Héritage | |
Nom | Nom de l'interface |
Avancée |
Pour plus d'informations, consultez : Étendre une interface |
Astuce
L'héritage multiple est pris en charge pour les interfaces.
Vous pouvez ajouter le Propriété d'interface et Méthode d'interface objets à la FIT objet. Les méthodes d'interface peuvent contenir uniquement les déclarations des variables d'entrée, de sortie et VAR_IN_OUT, mais pas d'implémentation.
Afin que vous puissiez également utiliser une interface dans le programme, il doit y avoir un bloc fonctionnel qui implémente cette interface.
Ça signifie:
Le bloc fonction contient l'interface dans sa liste IMPLEMENTS dans sa partie déclaration
Le bloc fonction contient une implémentation pour toutes les méthodes et les prototypes de propriété de l'interface
Un bloc fonction peut implémenter une ou plusieurs interfaces. Vous pouvez utiliser la même méthode avec des paramètres identiques, mais un code d'implémentation différent dans différents blocs fonctionnels.
Vous ne devez pas définir de variables dans une interface. Une interface n'a pas de partie d'implémentation et pas d'actions. Seule une collection de méthodes est définie, dans laquelle vous ne pouvez définir que des variables d'entrée, de sortie et VAR_IN_OUT.
CODESYS traite toujours les variables déclarées avec le type d'une interface comme des références.
Un bloc fonctionnel qui implémente une interface doit contenir le code d'implémentation des méthodes de l'interface. Vous avez nommé les méthodes exactement comme dans l'interface et les méthodes contiennent les mêmes variables d'entrée, de sortie et VAR_IN_OUT que dans l'interface.
Références d'interface et modification en ligne
Ce qui suit peut se produire avec une version du compilateur < 3.4.1.0 :
Si un bloc fonction modifie ses données parce que des variables sont ajoutées ou supprimées, ou parce que le type de variables change, alors CODESYS copie toutes les instances du bloc fonctionnel dans un nouvel emplacement mémoire. Dans ce cas, cependant, une référence d'interface ne fait pas référence au nouvel emplacement de mémoire, mais toujours à l'ancien.
En cas de versions de compilateur >= 3.4.1.0, CODESYS réadresse automatiquement les références d'interface afin que CODESYS fait également référence à l'interface correcte en cas de modification en ligne. CODESYS nécessite du code supplémentaire et plus de temps pour cela, de sorte que des problèmes de gigue peuvent survenir en fonction du nombre d'objets concernés. Donc, CODESYS affiche le nombre de variables et de références d'interface concernées avant l'exécution de la modification en ligne et vous pouvez alors décider si la modification en ligne doit être exécutée ou abandonnée.
Définition d'une interface et son utilisation dans un bloc fonction
Vous avez inséré l'interface FIT sous l'application. L'interface contient les méthodes Méthode1 et Méthode2. FIT, Méthode1 et Méthode2 ne contiennent aucun code d'implémentation. Vous insérez les déclarations de variables requises uniquement dans la partie déclaration des méthodes.
Si vous insérez ultérieurement dans l'arborescence des appareils un bloc fonctionnel qui implémente l'interface FIT, CODESYS insère également automatiquement les méthodes Méthode1 et Méthode2 sous le bloc de fonction. Ici, vous pouvez implémenter du code spécifique au bloc fonctionnel dans les méthodes.
